#ifndef MYGAME_HEADER
#define MYGAME_HEADER

#include <windows.h>

#include "../GameEngine.h"
#include "TyrianEnvironment.h"
#include <vector>
#include <list>

class MyGame : public GameEngine {
public:
	static MyGame* Instance();
	static void create(WNDPROC);				//creates 
	static void destroy();

	void createScene();				//Creates a new scene
	void deleteScene();				//Deletes a scene that was created

	void createCamera(int,int);

	GameEntity* createEntity(SceneNode*,int,int,int,std::string,ORIENTATION,POINT3D,COLOR);

	void cleanContainer();
	void deleteFromContainer(std::list<GameEntity *> entities);
	
	TyrianEnvironment * getEnv();			//returns the environmnent

	std::list<GameEntity *> getContainer();

	void callMethod(char *option);

	int getScore();
	void incScore();
	int getHighscore();
	void saveShipHP();
	void saveScore();

	void loadShipHP();

private:
	std::list<GameEntity *> container;
	TyrianEnvironment * env;
	int highScore;
	int score;

protected:
	MyGame(WNDPROC);						// Contrustor
	~MyGame();								// Destructor
};

#endif